Remote Alarm

Problématique

  • Comment etre renseigné d'un intru quelque part ?

  • Cahier des charges

  • Explication du projet :
  •  
            Remote Alarm est un projet d'alarme commandée à distance.
            
            - Module sonore integré au boitier d'alarme
            - Affichage du statut de l'alarme sur le boitier
            - Affichage du statut sur la Remote
            - Module sonore integré à la remote
                          
  • Fonctionnement, répartition des tâches
  •  
            2 programmes diférents:
    
            - Programme principal du boitier - Hugo Quentel
            - Programme secondaire de la remote - Hugo Quentel & Maryinho Evrad
                          

    le code et ses explications

    
    
    Programme principal :
    """ Imports """ from microbit import * from micro_grove import bip from micro_grove import mesure_temps_A_R import radio import music import neopixel """ Functions """ #Affiche la croix def displayCross(): for x in range(5): for y in range(5): display.set_pixel(x,y,0) display.set_pixel(0,0,9) display.set_pixel(1,1,9) display.set_pixel(2,2,9) display.set_pixel(3,3,9) display.set_pixel(4,4,9) display.set_pixel(0,4,9) display.set_pixel(1,3,9) display.set_pixel(3,1,9) display.set_pixel(4,0,9) #Affiche le "tick" def displayTick(): for x in range(5): for y in range(5): display.set_pixel(x,y,0) display.set_pixel(0,2,9) display.set_pixel(1,3,9) display.set_pixel(2,2,9) display.set_pixel(3,1,9) display.set_pixel(4,0,9) #Récupère les inforations de la remote def updateRemote(): global enable state = radio.receive() if state == "t": enable = True displayTick() elif state == "f": enable = False displayCross() state = "null" """ Initialisation """ enable = True #setup de la lisaison radio radio.config(channel=16) radio.on() displayTick() """ Boucle Principale """ while True: updateRemote() """ Distance """ t = mesure_temps_A_R(pin1) # Take distance distance = t * 0.034328 / 2 # To cm distance = round(distance) # Round Distance updateRemote() """ Check d'un obstacle """ if distance < 100 and enable: #envoie de l'information d'un obstacle à la remote radio.send("i") for freq in range(880, 1760, 16): music.pitch(freq, 6) sleep(500) updateRemote()
    Programme secondaire :
    """ Imports """ import music from microbit import * import radio from music import * """ Définition des fonctions """ #recieve : s'occupe de recevoir un signal d'un obstacle du boitier principale def receive(): state = radio.receive() if state =="i": #Check si le signal contient le packet i ( obstacle detecté ) display.show(Image.ANGRY) for freq in range(880, 1760, 16): music.pitch(freq, 5 ) if enable: display.show(Image.YES) else: display.show(Image.NO) state = "null" """ Initialisation """ radio.config(channel=16) #Ini de la radio radio.on() enable = True """ Boucle principale """ while True: receive() #Mise à jours de la detection obstacle if button_a.was_pressed(): """ START ALARM """ radio.send("t") #Envoie au boitier principale du packet t ( allumer l'alarme ) enable = True for y in range(5): for x in range(5): display.set_pixel(x,y,0) display.set_pixel(1,4,9) display.set_pixel(0,3,9) display.set_pixel(2,3,9) display.set_pixel(3,2,9) display.set_pixel(4,1,9) if button_b.was_pressed(): """ StOP ALARM """ radio.send("f") #Envoie au boitier principale du packet f ( désactive l'alarme ) enable = False for y in range(5): for x in range(5): display.set_pixel(x,y,0) for i in range(3): display.set_pixel(1,1,9) display.set_pixel(0,0,6) display.set_pixel(2,2,9) display.set_pixel(3,3,6) display.set_pixel(4,4,9) display.set_pixel(0,4,6) display.set_pixel(1,3,9) display.set_pixel(3,1,6) display.set_pixel(4,0,9) sleep(100)

    Conclusion (ressenti et problèmes rencontrés)

     
            Ce projet aura été intéressant à faire du fait de ses 2 programmes distincts. 
            L'organisation n'a donc pas été compliquée,chacun sur un projet. 
            Il y aura eu quelque problèmes malgré tout avec l'incompatibilité du bandeau led 
            sur le boitier d'alarme. Ce projet garde cependant de nombreuses possibilités 
            d'évolution avec une connection bluetooth à son téléphone ou encore des 
            améliorations dans l'affichage et un choix des alertes sonores